package com.megalith.service;

import com.megalith.dto.MembershipDTO;
import com.megalith.dto.UserGroupDTO;
import com.megalith.vo.Result;
import com.megalith.vo.UserGroupVO;
import com.megalith.vo.UserGroupWithUserVO;

import java.util.List;

/**
 * @Description TODO
 * @Author lfp
 * @Date 2022/7/16
 * @Version 1.0
 */
public interface ProcessEngineUserGroupService {
    /**
    *@Description 添加用户组
    *@Author lfp
    *@Date 2022/7/16
    *@param groupDTO
    *@Return
    */
    Result<UserGroupVO> addGroup(UserGroupDTO groupDTO);

    /**
    *@Description 删除用户组
    *@Author lfp
    *@Date 2022/7/16
    *@param groupId
    *@Return
    */
    Result deleteGroup(String groupId);

    /**
    *@Description 用户组及关联用户查询
    *@Author lfp
    *@Date 2022/7/16
    *@param groupDTO
    *@Return
    */
    List<UserGroupWithUserVO> listUserGroupWithUser(UserGroupDTO groupDTO);

    /**
    *@Description 用户与用户组关联
    *@Author lfp
    *@Date 2022/7/16
    *@param membershipDTO
    *@Return
    */
    Result createMembership(MembershipDTO membershipDTO);
}
